Avoid partial use of a Riesz map in TAO optimizers#240
Avoid partial use of a Riesz map in TAO optimizers#240jrmaddison wants to merge 2 commits intodolfin-adjoint:masterfrom
Conversation
|
From Maybe we should have a |
624244f to
28d0208
Compare
|
It's used elsewhere too, the |
|
Good point, I was mislead by the comments. I have zero knowledge of bounds constrained Krylov methods so I can't comment on what should happen there. In any case, I think that the amount of discussion there has been about Riesz maps + various optimisation methods is telling us that there should be at least a bit of exposition in the |
Yes, it should be a Riesz map shift. My preference would be to stick to the PETSc defaults where we can't configure the Riesz map, but agreed documentation for this would be good. |
Right, so currently shifting is not valid. Although possibly it wouldn't be too difficult to add by modifying what
Fair enough, I think there's a balance between trying to do the right thing by default ourselves and principle of least surprise when looking at the TAO docs.
For now please can you add a note to the docstring just saying that the GradientNorm is only set for LMVM and BLMVM, and that Riesz map support is known to be incomplete elsewhere so alternative methods are used at the users peril.
Actually, please can you add the kwarg below so we (I) have an escape hatch to use the Riesz map to check convergence but set the right options to prevent shifting.
|
|
Sorry to keep nitpicking but please can we have a way to force the gradient norm to be set? Otherwise it'll be impossible to use the riesz-mapped gradient to test convergence with Newton. |
Only set the gradient norm for cases where the Riesz map is configured elsewhere.
NLSseems to use the gradient norm, even though the optimizer is not fully configured to use the Riesz map, e.g. the identity perturbation at https://petsc.org/release/manual/tao/#newton-line-search-method-nls.Includes #239, which should be reviewed/merged first.